package com.ruoyi.system.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.MesDeviceMapper;
import com.ruoyi.system.domain.MesDevice;
import com.ruoyi.system.service.IMesDeviceService;

/**
 * 设备Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-06-01
 */
@Service
public class MesDeviceServiceImpl implements IMesDeviceService 
{
    @Autowired
    private MesDeviceMapper mesDeviceMapper;

    /**
     * 查询设备
     * 
     * @param id 设备主键
     * @return 设备
     */
    @Override
    public MesDevice selectMesDeviceById(Integer id)
    {
        return mesDeviceMapper.selectMesDeviceById(id);
    }

    /**
     * 查询设备列表
     * 
     * @param mesDevice 设备
     * @return 设备
     */
    @Override
    public List<MesDevice> selectMesDeviceList(MesDevice mesDevice)
    {
        return mesDeviceMapper.selectMesDeviceList(mesDevice);
    }

    /**
     * 新增设备
     * 
     * @param mesDevice 设备
     * @return 结果
     */
    @Override
    public int insertMesDevice(MesDevice mesDevice)
    {
        return mesDeviceMapper.insertMesDevice(mesDevice);
    }

    /**
     * 修改设备
     * 
     * @param mesDevice 设备
     * @return 结果
     */
    @Override
    public int updateMesDevice(MesDevice mesDevice)
    {

        return mesDeviceMapper.updateMesDevice(mesDevice);
    }

    /**
     * 批量删除设备
     * 
     * @param ids 需要删除的设备主键
     * @return 结果
     */
    @Override
    public int deleteMesDeviceByIds(Integer[] ids)
    {
        return mesDeviceMapper.deleteMesDeviceByIds(ids);
    }

    /**
     * 删除设备信息
     * 
     * @param id 设备主键
     * @return 结果
     */
    @Override
    public int deleteMesDeviceById(Integer id)
    {
        return mesDeviceMapper.deleteMesDeviceById(id);
    }

    /**
     * 判断编码是否唯一
     * @param deviceId 设备编码
     * @return
     */
    @Override
    public boolean isDeviceIdUnique(MesDevice mesDevice,Boolean addOrUpdate) {
        int count = mesDeviceMapper.countByDeviceId(mesDevice.getDeviceId());
        if(addOrUpdate) {
            return count == 0;
        }else {
            if (mesDevice.getDeviceId().equals(mesDevice.getOldDeviceId())){
                //新旧相同
                return count == 1;
            } else{
                //新旧不同，新的在数据库中没有才能修改
                return count == 0;
            }

            /*sb02 - sb01   sb01 已有一条
            old:sb02  new:sb01

            如果new在数据库中已有一条就不能修改

            old：sb02 new:sb02
            数据库中已有一条记录，但是能修改

            * */
        }
    }

}
